package sss;

import java.util.*;

/**
 * @author VernHe
 * @date 2021年08月13日 16:54
 */
public class Dat_04_2_1 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int k = input.nextInt();
        int m = input.nextInt();
        int[] a = new int[11];
        // 接收n个数据
        for (int i = 0; i < 10; i++) {
            a[i] = input.nextInt();
        }
        // 滚动数组
        int[] f = new int[10];
        // 初始化滚动数组
        for (int i = 0; i < 10; i++) {
            f[i] = i;
        }
//        System.out.println("初始化完成");
//        for (int num : f) {
//            System.out.printf(num + " ");
//        }
//        System.out.println();
//        System.out.println("---------------------------");
        int startIndex = 0;
        // 循环
        for (int i = 10, n; i <= k; i++) {
            n = 0;
            for (int j = 0; j < 10; j++) {
                // 从滚动数组中获取值
                if (a[j] != 0) {
                    // 0 1 2 3 4 5 6 7 8 9
                    // 0 1 1 0 1 1 1 0 0 0
                    // 9 8 7 6 5 4 3 2 1 0
                    // j = 0, index = 9; j = 9, index = 0
                    int index = (startIndex + 9 - j) % 10;
                    int num = f[index];
//                    System.out.printf("[index: " + index + " ---- num: " + num + "] ");
                    n += num;
                }
            }
//            System.out.println("新值：" + n);
            // 新值放到前面
            f[startIndex % 10] = n % m;
            startIndex++;
//            System.out.println("此时的数组");
//            for (int num : f) {
//                System.out.printf(num + " ");
//            }
//            System.out.println();
        }
        System.out.println(f[(startIndex + 9) % 10] % m);
    }
    /**
     * 13 100
     * 0 1 1 0 1 1 1 0 0 0
     * 0 1 2 3 4 5 6 7 8 9
     * 27
     * 32
     * 54
     * 80
     */
}
